As the amount of information stored by computer systems continues its exponential growth, companies are developing sophisticated information organization methods to aid users in both the storage and retrieval of that information. The ability to capture information, knowledge, and data has created a demand on organizations to absorb and analyze this information, knowledge, and data in a focused way. Organizations and people within organizations that effectively harness this information, knowledge, and data have a competitive advantage.
The onslaught of information has in turn changed the way in which people within organizations interact with information and collaborate in the preparation of projects. For example, the ability for people within organizations to collaborate on the preparation and review of a document has changed the way people interact allowing people to gain knowledge from their experiences and their peers' expertise. The need for effective collaboration in the preparation of documents has become essential to completion of projects. Lack of effective collaboration affects an organization's ability to meet time-to-market constraints, affects bottom line costs, and minimizes top line profitability. To achieve effective collaboration, the collaborative environment must be optimized, information feeds must be integrated wherever possible, and the right tools must be available to visualize and disseminate information rapidly and meaningfully.
Client-server environments facilitate collaboration by providing a central repository of information by way of a server that can provide a common platform for people to interact with by way of client computers. Client-server systems allow a centralized server to uniformly control aspects of the client interaction with programs and data on the server. One such example system is a document management system that provides a mechanism whereby multiple clients can collaborate in development of documents and other objects. Typically, such systems maintain objects in a central location (i.e. on a server) and control the access to the object by multiple clients. In this way, collaboration can be coordinated so that multiple clients are not simultaneously changing the object. For example, clients can access the server and “check-out” an object. Thereafter, other clients attempting to access the object will be notified that that object is in a “checked-out” state and may be prohibited from changing the object. Additionally, clients may see other object states such as “checked-in”, “expired”, and so on. While the server typically maintains control over the object, access to the object is typically provided by client software. Controlling the functionality of access to the object at the server would provide uniformity across clients and provide for a more flexible system design. Hence, there is a need to provide an improved system and method for controlling the access to and the manipulation of objects in a client-server environment wherein a plurality of clients have varying access to a plurality of objects stored on the server.